package org.jeecg.modules.wms.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import org.jeecg.common.aspect.annotation.Dict;
import org.springframework.format.annotation.DateTimeFormat;
import org.jeecgframework.poi.excel.annotation.Excel;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;

/**
 * 成品出库单明细表
 */
@Data
@TableName("wms_finished_goods_outbound_detail")
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@ApiModel(value = "FinishedGoodsOutboundDetail", description = "成品出库单明细")
public class FinishedGoodsOutboundDetail implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * 主键ID
     */
    @TableId(type = IdType.ASSIGN_ID)
    @ApiModelProperty(value = "主键ID")
    private String id;

    /**
     * 出库单ID
     */
    @Excel(name = "出库单ID", width = 15)
    @ApiModelProperty(value = "出库单ID")
    private String outboundId;

    /**
     * 库存ID
     */
    @Excel(name = "库存ID", width = 15)
    @ApiModelProperty(value = "库存ID")
    private String inventoryId;

    /**
     * 订单ID
     */
    @Excel(name = "订单ID", width = 15)
    @ApiModelProperty(value = "订单ID")
    private String orderId;

    /**
     * 订单明细ID
     */
    @Excel(name = "订单明细ID", width = 15)
    @ApiModelProperty(value = "订单明细ID")
    private String orderDetailId;

    /**
     * 计划出库数量
     */
    @Excel(name = "计划出库数量", width = 15)
    @ApiModelProperty(value = "计划出库数量")
    private Integer plannedQuantity;

    /**
     * 实际出库数量
     */
    @Excel(name = "实际出库数量", width = 15)
    @ApiModelProperty(value = "实际出库数量")
    private Integer actualQuantity;

    /**
     * 备注
     */
    @Excel(name = "备注", width = 15)
    @ApiModelProperty(value = "备注")
    private String remark;

    /**
     * 租户ID
     */
    @ApiModelProperty(value = "租户ID")
    private String tenantId;

    /**
     * 创建人
     */
    @ApiModelProperty(value = "创建人")
    private String createBy;

    /**
     * 创建日期
     */
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty(value = "创建日期")
    private Date createTime;

    /**
     * 更新人
     */
    @ApiModelProperty(value = "更新人")
    private String updateBy;

    /**
     * 更新日期
     */
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty(value = "更新日期")
    private Date updateTime;
//
//    // ========== 关联库存信息字段（仅用于查询返回，不存储到数据库） ==========
//
//    /**
//     * 库存窗型编号
//     */
//    @TableField(exist = false)
//    @ApiModelProperty(value = "库存窗型编号")
//    private String windowNo;
//
//    /**
//     * 库存窗型颜色
//     */
//    @TableField(exist = false)
//    @ApiModelProperty(value = "库存窗型颜色")
//    private String windowColor;
//
//    /**
//     * 仓库ID
//     */
//    @TableField(exist = false)
//    @ApiModelProperty(value = "仓库ID")
//    private String warehouseId;
//
//    /**
//     * 仓库名称
//     */
//    @TableField(exist = false)
//    @ApiModelProperty(value = "仓库名称")
//    private String warehouseName;
//
//    /**
//     * 库位ID
//     */
//    @TableField(exist = false)
//    @ApiModelProperty(value = "库位ID")
//    private String locationId;
//
//    /**
//     * 库位名称
//     */
//    @TableField(exist = false)
//    @ApiModelProperty(value = "库位名称")
//    private String locationName;
//
//    /**
//     * 可用数量
//     */
//    @TableField(exist = false)
//    @ApiModelProperty(value = "可用数量")
//    private Integer availableQuantity;
//
//    /**
//     * 预留数量
//     */
//    @TableField(exist = false)
//    @ApiModelProperty(value = "预留数量")
//    private Integer reservedQuantity;
//
//    /**
//     * 总数量
//     */
//    @TableField(exist = false)
//    @ApiModelProperty(value = "总数量")
//    private Integer totalQuantity;
//
//    /**
//     * 库存状态
//     */
//    @TableField(exist = false)
//    @ApiModelProperty(value = "库存状态")
//    private Integer stockStatus;
//
//    /**
//     * 入库日期
//     */
//    @TableField(exist = false)
//    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
//    @DateTimeFormat(pattern = "yyyy-MM-dd")
//    @ApiModelProperty(value = "入库日期")
//    private Date inboundDate;
//
//
//    /**
//     * 订单编号
//     */
//    @Excel(name = "订单编号", width = 15)
//    @ApiModelProperty(value = "订单编号")
//    @TableField(exist = false)
//    private String orderNo;
//
//    /**
//     * 订单明细ID
//     */
//    @Excel(name = "订单明细ID", width = 15)
//    @ApiModelProperty(value = "订单明细ID")
//    @TableField(exist = false)
//    private String orderDetailId;
//
//    /**
//     * 窗型系列
//     */
//    @Excel(name = "窗型系列", width = 15)
//    @ApiModelProperty(value = "窗型系列")
//    @TableField(exist = false)
//    private String windowSeries;
//
//    /**
//     * 库位编码
//     */
//    @Excel(name = "库位编码", width = 15)
//    @ApiModelProperty(value = "库位编码")
//    @TableField(exist = false)
//    private String locationCode;
//
//    /**
//     * 批次号
//     */
//    @Excel(name = "批次号", width = 15)
//    @ApiModelProperty(value = "批次号")
//    @TableField(exist = false)
//    private String batchNo;
//
//    /**
//     * 出库数量
//     */
//    @Excel(name = "出库数量", width = 15)
//    @ApiModelProperty(value = "出库数量")
//    @TableField(exist = false)
//    private Integer outboundQuantity;
//
//    /**
//     * 生产日期
//     */
//    @Excel(name = "生产日期", width = 15)
//    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
//    @DateTimeFormat(pattern = "yyyy-MM-dd")
//    @ApiModelProperty(value = "生产日期")
//    @TableField(exist = false)
//    private Date productionDate;
//
//    /**
//     * 质量状态
//     */
//    @Excel(name = "质量状态", width = 15)
//    @ApiModelProperty(value = "质量状态")
//    @TableField(exist = false)
//    private Integer qualityStatus;
}
